package typeErasure;

import edu.princeton.cs.algs4.In;

import java.util.Collection;

public class GenericType4 {

    public void test(Collection<?> collection) {

//        collection.add(123);
//        collection.add(new Object());
//          collection.add("hello");


        // 只能调用与类型无关的方法
        collection.iterator().next();
        collection.size();
    }


    /**
     * 用泛型方法取代通配符， 是可以写操作的，不过需要强制转换
     * @param collection
     * @param <T>
     */
    public <T> void test1(Collection<T> collection) {
        collection.add((T) new Integer(12));
        collection.add((T) "11111");
        collection.add((T) new Object());
        System.out.println(collection);
    }


    public static void test2(Collection<? extends Base> collection) {
        System.out.println(collection.size());
    }


}
